1. Technical Field
The present invention relates to small computer system interface protocols and, in particular, to data mirroring in small computer system interface protocols. Still more particularly, the present invention provides a method, apparatus, and program for improving data mirroring performance in a small computer system interface topology.
2. Description of the Related Art
Small computer system interface (SCSI) is a hardware interface that allows for the connection of up to fifteen peripheral devices to a single controller called a “SCSI host adapter” of a computer device. SCSI peripherals are daisy chained together using a second port to connect each device to the next device in line. SCSI is a bus structure itself and functions like a miniature local area network (LAN), connecting up to sixteen devices including the host adapter. SCSI allows any two devices to communicate at one time. For example, a host may communicate with a peripheral or a peripheral may communicate with another peripheral.
The Ultra 320 parallel SCSI bus protocol is likely the last technology node for parallel SCSI due to other emerging protocols. A move to 640 Mbps has been abandoned and is not likely to continue. Serial attached SCSI (SAS) is in development; however, products using the Ultra 320 parallel SCSI bus protocol are expected to become legacy parallel SCSI products for years to come. One way to upgrade speed using the existing parallel SCSI products is to improve data throughput.
Data mirroring in normal SCSI topologies requires one host and at least two storage devices to store data. Typically, a data mirroring application duplicates a block of data across two disk drives. For example, a first drive contains the original block of data and a second drive contains a duplicate copy of the block of data for fault tolerance. A data mirroring application could also create multiple duplicate copies of data. For example, a first drive may contain the original block of data and two or more other drives may contain duplicate copies of the block of data.
The use of multiple disk drives during data mirroring requires establishing an initiator/target nexus for each disk drive. Each initiator/target nexus has an associated arbitration/selection time. This incurs a 2.4 μs or greater delay for each nexus that is established for each data block transfer. With that limitation, a 4.8 μs or greater delay would be encountered for a common data mirroring application with only one duplicate data drive. With N duplicate data drives, a ((N+1)·2.4)μs delay would be encountered for arbitration/selection. These delays affect the throughput of the SCSI topology when using data mirroring.